package com.chen.service;

import com.chen.pojo.common.PageResult;
import com.chen.pojo.dto.NodeDto;
import com.chen.pojo.vo.DetailVo;
import com.chen.pojo.vo.NodeVo;
import com.chen.pojo.vo.ReportVo;

import java.util.List;

/**
 * @author chen
 * @version 1.0
 * @create_date 2025/8/17
 * 点位管理业务接口
 */
public interface NodeService {
    /**
     * 分页查询
     *
     * @param pageIndex 起始页
     * @param pageSize  页大小
     * @param name      点位名称
     * @param regionId  区域id
     * @return 查询结果
     */
    PageResult<NodeVo> searchList(Integer pageIndex, Integer pageSize,
                                  String name, String regionId);

    /**
     * 新增点位
     *
     * @param nodeDto 点位信息
     * @return 结果
     */
    Boolean addNode(NodeDto nodeDto);

    /**
     * 获取点位详情
     *
     * @param nodeId 点位id
     * @return
     */
    List<DetailVo> getNodeDetail(String nodeId);

    /**
     * 更新点位信息
     *
     * @param nodeId  点位id
     * @param nodeDto 点位信息
     * @return 结果
     */
    Boolean updateNode(String nodeId, NodeDto nodeDto);

    /**
     * 删除点位信息
     *
     * @param nodeId 点位id
     * @return 结果
     */
    Boolean deleteNode(String nodeId);

    /**
     * 统计点位数量
     *
     * @return 点位数量
     */
    Long getNodeCount();

    /**
     * 合作商点位汇总统计
     *
     * @return 结果
     */
    List<ReportVo> getNodeCountByPartner();
}
